//package com.zuul.config;
//
//import com.alibaba.fastjson.JSONObject;
//import com.util.Respons.ResponseUtil;
//import org.springframework.cloud.netflix.zuul.filters.route.ZuulFallbackProvider;
//import org.springframework.http.HttpHeaders;
//import org.springframework.http.HttpStatus;
//import org.springframework.http.MediaType;
//import org.springframework.http.client.ClientHttpResponse;
//import org.springframework.stereotype.Component;
//
//import java.io.ByteArrayInputStream;
//import java.io.IOException;
//import java.io.InputStream;
//import java.nio.charset.Charset;
//import java.util.HashMap;
//import java.util.Map;
//
///**
// * @author 张子艺
// * @packge com.zuul.config
// * @data 2019-01-21 11:41
// * @project CurrenCy-Cloud
// */
//@Component
//public class ServiceFallback implements ZuulFallbackProvider {
//    /**
//     * 可以指定为哪个微服务回退，*为所有服务。
//     *
//     * @return
//     */
//    @Override
//    public String getRoute() {
//        return "*";
//    }
//
//    @Override
//    public ClientHttpResponse fallbackResponse() {
//        return new ClientHttpResponse() {
//            @Override
//            public HttpStatus getStatusCode() throws IOException {
//                return HttpStatus.OK;
//            }
//
//            @Override
//            public int getRawStatusCode() throws IOException {
//                return this.getStatusCode().value();
//            }
//
//            @Override
//            public String getStatusText() throws IOException {
//                return this.getStatusCode().getReasonPhrase();
//            }
//
//            @Override
//            public void close() {
//
//            }
//
//            @Override
//            public InputStream getBody() throws IOException {
//                return new ByteArrayInputStream(JSONObject.toJSONString(ResponseUtil.getExceptionMap()).getBytes());
//            }
//
//            @Override
//            public HttpHeaders getHeaders() {
//                HttpHeaders httpHeaders = new HttpHeaders();
//                MediaType mediaType = new MediaType("application", "json",
//                        Charset.forName("UTF-8"));
//                httpHeaders.setContentType(mediaType);
//                return httpHeaders;
//            }
//        };
//    }
//}
